package com.spring.authManage.service;

import java.util.List;
import java.util.Map;

import com.spring.authManage.pojo.UserInfo;
import com.spring.authManage.pojo.UserRoleInfo;

/**
 * 用户信息服务类
 * @author sunchengtao
 * @purpose
 */
public interface UserInfoService {
	/**
	 * 添加用户信息
	 * @param info
	 * @throws Exception 
	 */
	public String addUserInfo(UserInfo info) throws Exception;
	/**
	 * 更新用户信息
	 * @param info
	 * @throws Exception 
	 */
	public String updateUserInfo(UserInfo info) throws Exception;
	/**
	 * 根据用户账号获取用户信息
	 * @param userName
	 * @return
	 */
	public UserInfo queryUserInfoByUserName(String userName) throws Exception ;
	
	/**
	 * 修改后台登陆用户密码
	 * 
	 * @param userInfo
	 * @return String
	 */
	public String updatePwd(Map<String,Object> map) throws Exception;
	
	/**
	 * 重置密码 
	 * 
	 * @param userInfo
	 * @return String
	 */
	public void resetPwd(String id,String password) throws Exception;
	
	/**
	 * 根据用户ID获取用户信息
	 * @param userName
	 * @return
	 * @throws Exception 
	 */
	public UserInfo queryUserInfoByUserId(String userId) throws Exception;
	/**
	 * 更新用户角色分配
	 * @param userId
	 * @param roleIds
	 */
	public void updateUserRole(String userId,String roleIds,String updateUser) throws Exception ;
	/**
	 * 根据角色名称获取拥有该角色的所有用户
	 * @param roleName
	 * @return
	 */
	public UserInfo queryUserInfosByRoleName(String roleName) throws Exception ;
	
	/**
	 * 根据user_id获取用户角色
	 * @param user_id
	 * @return
	 */
	public List<UserRoleInfo> queryUserRoleInfoByUserId(String user_id) throws Exception ;
	/**
	 * 根据查询条件获取符合条件的用户信息
	 * @param param
	 * @return
	 */
	public UserInfo queryUserInfoByParam(UserInfo userInfo) throws Exception ;
	/**
	 * 删除用户
	 * @param id
	 * @return
	 */
	public void deleteUser(String id) throws Exception ;
	/**
	 * 重启用户
	 * @param id
	 * @return
	 */
	public void restartUser(String id) throws Exception ;
	
	
	/**
	 * 动态生成菜单
	 * @param param
	 * @return
	 */
	public Object[] getMenuByUserName(String userName) throws Exception;
}
